/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.sapra.dep;

/**
 *
 * @author BlackCrystal™
 */
public class LogicClass {
    public LogicClass(){

    }

    public  String cadena(HeaderMO h){
        String cadena="";
        cadena+="H";
        //System.out.println(""+cadena+" "+cadena.length());
        cadena+="NE";
        //System.out.println(""+cadena+" "+cadena.length());
        cadena+="00000999";
        //System.out.println(""+cadena+" "+cadena.length());
        cadena+=h.getNie();
        //System.out.println(""+cadena+" "+cadena.length());
        cadena+=cad1(h.getRazon_social(),40,1,0);
        //System.out.println(""+cadena+" "+cadena.length());
        cadena+=h.getConsecutivo();
        //System.out.println(""+cadena+" "+cadena.length());
        cadena+=cad1(h.getNum_registros(),6,2,0);
        //System.out.println(""+cadena+" "+cadena.length());
        cadena+=cad1("4831",283,1,0);
        //System.out.println(""+cadena+" "+cadena.length());

        return cadena;
    }

    public  String cadenaRow(DataRow r){
        String cadena="";
        cadena+=cad1(r.getTipo_registro(),1,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getNum_empleado(),10,2,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getNombres(),20,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getApellido_paterno(),20,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getApellido_materno(),20,1,0);
        //System.out.println(cadena);
        cadena+="00000";
        //System.out.println(cadena);
        cadena+="14";
        //System.out.println(cadena);
        cadena+=cad1(r.getNombre_corto(),19,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getTipo_via(),2,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getCalle(),24,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getNumero(),7,1,0);
         //System.out.println(cadena);
        cadena+=cad1(r.getTipo_vivienda(),2,2,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getEntrada(),2,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getPiso(),2,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getDepartamento(),4,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getColonia(),40,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getDelegacion(),3,2,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getClave_estado(),2,2,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getCp(),5,2,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getTelefono_part(),12,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getSexo(),1,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getFecha_nacimiento(),8,2,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getNacionalidad(),3,2,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getEstado_civil(),1,1,0);
        //System.out.println(cadena);
        cadena+=cad1(r.getRegimen_matrimonial(),1,1,0);//System.out.println(cadena);
        cadena+=cad1(r.getEscolaridad(),3,2,0);//System.out.println(cadena);
        cadena+="101";System.out.println(cadena);
        cadena+=cad1(r.getTipo_empleado(),2,2,0);//System.out.println(cadena);
        cadena+=cad1(r.getRfc(),13,1,0);//System.out.println(cadena);
        cadena+=cad1(r.getCurp(),18,1,0);//System.out.println(cadena);
        cadena+="01";//System.out.println(cadena);
        cadena+="3";//System.out.println(cadena);
        cadena+=cad1(r.getNum_tarjeta_debito(),16,2,0);//System.out.println(cadena);
        cadena+="0360";//System.out.println(cadena);
        cadena+="072";//System.out.println(cadena);
        cadena+="01";//System.out.println(cadena);
        cadena+=cad1(r.getNum_cuenta_afiliado(),18,2,0);//System.out.println(cadena);
        cadena+="0171";//System.out.println(cadena);
        cadena+="S";//System.out.println(cadena);

        cadena+=cad1(r.getSueldo_empleado(),15,2,1);
        cadena+=cad1(r.getNum_tarjeta_empleado_pbaja(),16,2,0);
        cadena+=cad1(r.getFiller(),10,1,0);

        return cadena;
    }
    public String cadenaDispHeader(RespDispersionHeader r){
        String cadena="";
        cadena+="H";
        cadena+="NE";
        cadena+="34954";
        cadena+=cad1(r.getFechaProceso(), 8, 2,0);
        cadena+=cad1(r.getConsecutivo(), 2, 2,0);
        cadena+=cad1(r.getNumRegistros(), 6, 2,0);
        cadena+=r.getImporteTotal();
        cadena+=cad1(r.getNumTotalAlta(), 6, 2,0);
        cadena+=r.getImpTotalAlta();
        cadena+=cad1(r.getNumTotalBaja(), 6, 2,0);
        cadena+=cad1(r.getImpTotalBaja(), 15, 2,1);
        cadena+=cad1(r.getNumTotalCuenta(), 6, 2,0);
        cadena+=cad1(r.getAccion(), 1, 1,0);
        cadena+=cad1(r.getFiller(), 77, 1,0);


        return cadena;
    }
    public String cadenaDispRow(ResDispersionRow r,int fk_bancoId){
       String cadena="";
       cadena+=cad1(r.getTipoRegistro(),1,1,0);
       cadena+=cad1(r.getFechaAplicacion(),8,2,0);
       cadena+=cad1(r.getNumeroEmpleado(),10,2,0);
       cadena+=cad1(r.getRefServicio(),40,1,0);
       cadena+=cad1(r.getRefOrdenante(),40,1,0);
       cadena+=cad1(r.getImporte(),15,2,1);
       if(fk_bancoId==1){
           cadena+=cad1("072",3,2,0);
           cadena+=cad1("01",2,1,0);
       }
            
       else{
           cadena+=cad1("021",3,2,0);
           cadena+=cad1("40",2,1,0);
       }
       
       cadena+=cad1(r.getNumCuenta(),18,2,0);
       cadena+=cad1(r.getTipoMov(),1,2,0);
       cadena+=cad1(r.getAccion(),1,1,0);
       cadena+=cad1(r.getImporteIva(),8,1,0);
       cadena+=cad1(r.getFiller(),18,1,0);

       return cadena;
    }
    public  String cad1(String value,int sizeFinal,int justificacion,int sueldo){//Justificacion 1.-izquierda  2.- derecha
        value=value.trim();
        int size=value.length();
        if(size!=sizeFinal){
            if(size>sizeFinal){
                    value=value.substring(0, sizeFinal);
            }
            else{
                if(justificacion==1){
                    for(int i=size;i<sizeFinal;i++){
                        value+=" ";
                     }
                }
                else{
                    int resta=sizeFinal-size;
                    String cero="";
                    for(int i=0;i<resta;i++){
                        cero+="0";
                     }
                    value=cero+""+value;
                }

            }
        }
        if(sueldo==1){
                    int bandera=1000;
                    String extension="";
                   
                    try {
                         extension=value.substring(value.lastIndexOf("."));
                    } catch (Exception e) {
                        value=value.substring(2, 15)+".0";
                        bandera=1;
                    }

                    extension=value.substring(value.lastIndexOf("."));
                    if(extension.length()>=3){
                         value=value.substring(0, value.length()-1);
                         bandera=1;
                     }
                    if(extension.length()==2){
                        bandera=2;
                    }


                    String aux="";
                    for(int i=0;i<value.length();i++){
                        String comp=""+value.charAt(i);
                        if(comp.equals(".")){
                            
                        }
                        else{
                            aux=aux+comp;
                        }
                    }
                    switch(bandera){
                        case 1:aux="0"+aux+"0";break;
                        case 2:aux=aux+"0";break;
                    }
                    value=aux;
             }
        return value;
        }



    public  HeaderMO header(int nextHeaderId,String fechaStr,int size){
            HeaderMO h=new HeaderMO();
            h.setIdHeaders(nextHeaderId);
            h.setFecha(fechaStr);
            h.setEstatus(0);
            h.setTipo_registro("H");
            h.setClave_servicio("SE");
            h.setPromotor("00000000");
            h.setNie(34954);
            h.setRazon_social("CAINTRA");
            h.setRazon_social(cad1(h.getRazon_social(),40,1,0));
            h.setConsecutivo("90");
            h.setNum_registros(""+size);
            h.setNum_registros(cad1(h.getNum_registros(),6,2,0));
            h.setFiller("");
            h.setFiller(cad1(h.getFiller(),283,1,0));

        return h;
    }
    public String  DispersionRow(ResDispersionRow r){
        String cadena="";
        cadena+=r.getTipoRegistro();
        cadena+=r.getFechaAplicacion();
        cadena+=r.getNumeroEmpleado();
        cadena+=r.getRefServicio();
        cadena+=r.getRefOrdenante();
        cadena+=r.getImporte();
        cadena+=r.getNumeroBanco();
        cadena+=r.getTipoCuenta();
        cadena+=r.getNumCuenta();
        cadena+=r.getTipoMov();
        cadena+=r.getAccion();
        cadena+=r.getImporteIva();
        cadena+=r.getFiller();

        return "";
    }

}
